package com.bh.wms.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.bh.common.annotation.Excel;
import com.bh.common.core.domain.BhtmsBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.math.BigDecimal;

/**
 * WMS物料/商品
 *
 * @author GPT
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_sku")
@ApiModel(value = "仓储SKU", description = "仓库内部管理的SKU")
public class WmsSku extends BhtmsBaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("SKU编码")
    @Excel(name = "SKU编码")
    private String code;

    @ApiModelProperty("SKU名称")
    @Excel(name = "SKU名称")
    private String name;

    @ApiModelProperty("SKU类型")
    @Excel(name = "SKU类型")
    private String skuType;

    @ApiModelProperty("条码")
    @Excel(name = "条码")
    private String barCode;

    @ApiModelProperty("规格型号")
    @Excel(name = "规格型号")
    private String specification;

    @ApiModelProperty("计量单位")
    @Excel(name = "计量单位")
    private String uom;

    @ApiModelProperty("长(cm)")
    @Excel(name = "长(cm)")
    private Double length;

    @ApiModelProperty("宽(cm)")
    @Excel(name = "宽(cm)")
    private Double width;

    @ApiModelProperty("高(cm)")
    @Excel(name = "高(cm)")
    private Double height;

    @ApiModelProperty("毛重(kg)")
    @Excel(name = "毛重(kg)")
    private BigDecimal grossWeight;

    @ApiModelProperty("净重(kg)")
    @Excel(name = "净重(kg)")
    private BigDecimal netWeight;

    @ApiModelProperty("体积(m³)")
    @Excel(name = "体积(m³)")
    private BigDecimal volume;

    @ApiModelProperty("保质期天数")
    @Excel(name = "保质期天数")
    private Integer shelfLifeDays;

    @ApiModelProperty("批次管理 0-否 1-是")
    @Excel(name = "批次管理")
    private Integer enableBatch;

    @ApiModelProperty("序列号管理 0-否 1-是")
    @Excel(name = "序列号管理")
    private Integer enableSn;

    @ApiModelProperty("默认仓库")
    @Excel(name = "默认仓库")
    private Long defaultWarehouseId;

    @ApiModelProperty("默认库区")
    @Excel(name = "默认库区")
    private Long defaultZoneId;

    @ApiModelProperty("默认货位")
    @Excel(name = "默认货位")
    private Long defaultLocationId;

    @ApiModelProperty("所属分类")
    @Excel(name = "所属分类")
    private String categoryCode;

    @ApiModelProperty("扩展字段1")
    private String extendOne;

    @ApiModelProperty("扩展字段2")
    private String extendTwo;

    @ApiModelProperty("扩展字段3")
    private String extendThree;
}

